/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pio.action.preinscrito;


import DBMS.DataBaseManager;
import clases.Aspirante;
import clases.PeriodoInscripcion;
import clases.Preinscrito;
import clases.ResultadoPrueba;
import clases.ResultadoSeccionPrueba;
import java.util.ArrayList;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

/**
 *
 * @author tamerdark
 */
public class Validar extends org.apache.struts.action.Action {

    
    private final static String PERIODO_ANTES = "periodoAntes";
    private final static String PERIODO_DESPUES = "periodoDespues";
    private final static String RECHAZADO = "rechazado";
    private final static String ERRORASPIRANTE = "errorAspirante";
    private final static String ESPERAR_RESULTADO = "esperarResultado";
    private final static String APROBADO = "aprobado";
    private final static String ERROR = "error";

    /**
     * This is the action called from the Struts framework.
     * @param mapping The ActionMapping used to select this instance.
     * @param form The optional ActionForm bean for this request.
     * @param request The HTTP Request we are processing.
     * @param response The HTTP Response we are processing.
     * @throws java.lang.Exception
     * @return
     */
    @Override
    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {
        
        HttpSession s = request.getSession();
        DataBaseManager dbms = DataBaseManager.getInstance();
        Preinscrito p = (Preinscrito)form;
        ArrayList preinscritos = dbms.consultarPreinscritos(p);
        if(preinscritos.isEmpty()){
            Aspirante a = (Aspirante)form;
            request.setAttribute("Aspirante", (Aspirante)a);
               return mapping.findForward(ERRORASPIRANTE);
               
        }else{
            p=(Preinscrito)preinscritos.get(0);
            request.setAttribute("Preinscrito", p);
            PeriodoInscripcion pe= new PeriodoInscripcion();
            pe.setId(p.getIdInscripcion());
            ArrayList Periodos=dbms.consultarPeriodoInscripcion(pe);
            if(!Periodos.isEmpty()){
            pe=(PeriodoInscripcion)Periodos.get(0);
            request.setAttribute("Inscripcion", pe);
            }else{
            request.setAttribute("Inscripcion", null);
            }
            
            ResultadoPrueba rp1= new ResultadoPrueba();
            rp1.setCedula(p.getCedula());
            rp1.setNombrePrueba("Pio");
            ArrayList ResultadosPrueba=dbms.consultarResultadoPrueba(rp1);
            if(!ResultadosPrueba.isEmpty()){
                
                rp1=(ResultadoPrueba)ResultadosPrueba.get(0);
                
                
                ResultadoSeccionPrueba sp1= new ResultadoSeccionPrueba();
                sp1.setIdPrueba(rp1.getId());
                sp1.setNombreSeccion("Habilidad Verbal");
                ArrayList ResulSecPrhv=dbms.consultarResultadoSeccionPrueba(sp1);
                if(!ResulSecPrhv.isEmpty()){
                    
                    sp1=(ResultadoSeccionPrueba)ResulSecPrhv.get(0);
                    request.setAttribute("Seccion1", sp1); 
                    
                }else{
                request.setAttribute("pasoNotas", null);
                }
                
                ResultadoSeccionPrueba sp2= new ResultadoSeccionPrueba();
                sp2.setIdPrueba(rp1.getId());
                sp2.setNombreSeccion("Habilidad Matematica");
                ArrayList ResulSecSp2=dbms.consultarResultadoSeccionPrueba(sp2);
                if(!ResulSecSp2.isEmpty()){
                    
                    sp2=(ResultadoSeccionPrueba)ResulSecSp2.get(0);
                    request.setAttribute("Seccion2", sp2);
                    
                }else{
                request.setAttribute("pasoNotas", null);
                }
            }
            ResultadoPrueba rp2= new ResultadoPrueba();
            rp2.setCedula(p.getCedula());
            rp2.setNombrePrueba("Raven");
            ArrayList ResultadosPrueba2=dbms.consultarResultadoPrueba(rp2);
            if(!ResultadosPrueba2.isEmpty()){
                rp2=(ResultadoPrueba)ResultadosPrueba2.get(0);

                ResultadoSeccionPrueba sp3= new ResultadoSeccionPrueba();
                sp3.setIdPrueba(rp2.getId());
                sp3.setNombreSeccion("Raven");
                ArrayList ResulSecSp3=dbms.consultarResultadoSeccionPrueba(sp3);
                if(!ResulSecSp3.isEmpty()){
                   sp3=(ResultadoSeccionPrueba)ResulSecSp3.get(0);
                    request.setAttribute("Seccion3", sp3);
                    request.setAttribute("pasoNotas", 3);
                }else{
                    request.setAttribute("pasoNotas", null);
                }
             
            }
            
            
         if(p.getNotaPio()>0){
             
        return mapping.findForward("aprobado");
         } else
        return mapping.findForward("rechazado");
             }
    }
}
